.pure-calendar-dialog {
    background: var(--pure-calendar-background, var(--pure-background-element));
    padding: var(--pure-calendar-padding);
    border-radius: var(--pure-calendar-border-radius);
    box-sizing: border-box;
    height: var(--pure-calendar-height, 960rpx);
    display: flex;
    flex-direction: column;
}

.pure-calendar-poppable .pure-calendar-dialog {
    position: fixed;
    z-index: var(--pure-overlay-z-index, var(--pure-z-index-upper));
    width: 100%;
    left: 0;
    bottom: var(--pure-calendar-bottom, 0);
    transition: var(--pure-calendar-transition, 0.3s);
    transform: translateY(100%);
}

.pure-calendar-show .pure-calendar-dialog {
    transform: translateY(0);
}

.pure-calendar-close {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    top: var(--pure-calendar-close-top, 15px);
    right: var(--pure-calendar-close-right, 10px);
    left: var(--pure-calendar-close-left, auto);
    bottom: var(--pure-calendar-close-bottom, auto);
    z-index: 2;
    font-size: var(--pure-calendar-close-font-size, var(--pure-font-size-larger));
    font-weight: var(--pure-calendar-close-font-weight, 600);
    color: var(--pure-calendar-close-color);
    cursor: pointer;
    background: var(--pure-calendar-close-background);
    border-radius: var(--pure-calendar-close-border-radius);
    border: var(--pure-calendar-close-border);
    width: var(--pure-calendar-close-width);
    height: var(--pure-calendar-close-height);
    padding: var(--pure-calendar-close-padding);
    box-sizing: border-box;
    transform: var(--pure-calendar-close-transform);
}

.pure-calendar-header {
    padding: var(--pure-calendar-header-padding, 15px);
    box-sizing: border-box;
    flex-shrink: 0;
}

.pure-calendar-header-title {
    font-size: var(--pure-calendar-title-font-size, var(--pure-font-size-larger));
    color: var(--pure-calendar-title-color);
    text-align: var(--pure-calendar-title-text-align, center);
    font-weight: var(--pure-calendar-title-font-weight, 600);
}

.pure-calendar-switch {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: var(--pure-calendar-switch-padding);
    margin: var(--pure-calendar-switch-margin, 15px 0 0 0);
    gap: var(--pure-calendar-switch-gap, 5px);
    font-size: var(--pure-calendar-switch-font-size);
    font-weight: var(--pure-calendar-switch-font-weight, 600);
    color: var(--pure-calendar-switch-color);
    box-sizing: border-box;
}

.pure-calendar-year-month {
    flex: 1;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--pure-calendar-year-month-font-size);
    color: var(--pure-calendar-year-month-color);
    font-weight: var(--pure-calendar-year-month-font-weight);
}

.pure-calendar-switch-btn {
    flex-shrink: 0;
}

.pure-calendar-switch-btn-disabled {
    pointer-events: none;
    opacity: var(--pure-calendar-switch-btn-disabled-opacity, var(--pure-opacity-disabled));
}

.pure-calendar-week {
    display: flex;
    flex-direction: row;
    font-size: var(--pure-calendar-week-font-size);
    font-weight: var(--pure-calendar-week-font-weight, 600);
    padding: var(--pure-calendar-week-padding, 15px 0);
    box-sizing: border-box;
    background: var(--pure-calendar-week-background);
    color: var(--pure-calendar-week-color);
    text-align: var(--pure-calendar-week-text-align, center);
    flex-shrink: 0;
}

.pure-calendar-week-item {
    flex: 1;
    overflow: hidden;
    padding: var(--pure-calendar-week-item-padding);
    box-sizing: border-box;
}

.pure-calendar-body {
    flex: 1;
    overflow: hidden;
}

.pure-calendar-scroll-view {
    height: 100%;
}

.pure-calendar-scroll-view-content {
    padding: var(--pure-calendar-scroll-view-content-padding, 0 15px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: var(--pure-calendar-months-gap, 15px);
}

.pure-calendar-month {
    position: relative;
}

.pure-calendar-month-watermark {
    position: absolute;
    z-index: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: var(--pure-calendar-month-watermark-font-size, 10em);
    opacity: var(--pure-calendar-month-watermark-opacity, 0.1);
}

.pure-calendar-month-header {
    text-align: var(--pure-calendar-month-header-text-align, center);
    font-weight: var(--pure-calendar-month-header-font-weight, 600);
    padding: var(--pure-calendar-month-header-padding, 15px 0);
    box-sizing: border-box;
    color: var(--pure-calendar-month-header-color);
}

.pure-calendar-month-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    position: relative;
    z-index: 2;
    font-size: var(--pure-calendar-day-font-size);
    font-weight: var(--pure-calendar-day-font-weight);
    color: var(--pure-calendar-day-color);
    text-align: var(--pure-calendar-day-text-align, center);
    gap: var(--pure-calendar-day-gap, 5px 0);
}

.pure-calendar-day {
    position: relative;
    border-radius: var(--pure-calendar-day-border-radius-left-top, var(--pure-calendar-day-border-radius-default, 0)) var(--pure-calendar-day-border-radius-right-top, var(--pure-calendar-day-border-radius-default, 0)) var(--pure-calendar-day-border-radius-right-bottom, var(--pure-calendar-day-border-radius-default, 0)) var(--pure-calendar-day-border-radius-left-bottom, var(--pure-calendar-day-border-radius-default, 0));
}

.pure-calendar-day::before {
    content: "";
    box-sizing: border-box;
    padding-top: 100%;
    display: block;
}

.pure-calendar-day-fill,
.pure-calendar-day-out-start-end {
    color: var(--pure-calendar-day-light-color, var(--pure-text-color-light));
    pointer-events: none;
}

.pure-calendar-day-disabled {
    opacity: var(--pure-calendar-day-disabled-opacity, var(--pure-opacity-disabled));
    pointer-events: none;
}


.pure-calendar-day-selected {
    background: var(--pure-calendar-day-selected-background, var(--pure-theme-primary));
    color: var(--pure-calendar-day-selected-color, #ffffff);
}

.pure-calendar-day-selected-start {
    --pure-calendar-day-border-radius-left-top: var(--pure-calendar-day-start-border-radius-default, 5px);
    --pure-calendar-day-border-radius-left-bottom: var(--pure-calendar-day-start-border-radius-default, 5px);
}

.pure-calendar-day-selected-end {
    --pure-calendar-day-border-radius-right-top: var(--pure-calendar-day-end-border-radius-default, 5px);
    --pure-calendar-day-border-radius-right-bottom: var(--pure-calendar-day-end-border-radius-default, 5px);
}

.pure-calendar-day-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    z-index: 1;
}

.pure-calendar-footer {
    flex-shrink: 0;
    padding: var(--pure-calendar-footer-padding, 15px);
    box-sizing: border-box;
    display: none;
}

.pure-calendar-poppable .pure-calendar-footer {
    display: block;
}

.pure-calendar-safe-bottom .pure-calendar-footer {
    margin-bottom: env(safe-area-inset-bottom);
}

.pure-calendar-before-hide .pure-calendar-dialog {
    opacity: 1;
    transform: translateY(0);
}

.pure-calendar-to-hide .pure-calendar-dialog {
    opacity: 1;
    transform: translateY(100%);
}

.pure-calendar-hide .pure-calendar-dialog {
    opacity: 0;
    transform: translateY(100%);
}

.pure-calendar-before-show .pure-calendar-dialog {
    opacity: 0;
    transform: translateY(100%);
}

.pure-calendar-to-show .pure-calendar-dialog {
    opacity: 1;
    transform: translateY(0);
}

.pure-calendar-show .pure-calendar-dialog {
    opacity: 1;
    transform: translateY(0);
}
